import React,{useEffect} from 'react'
import { useHistory,useLocation } from 'react-router-dom'

//封装高阶组件:路由守卫 === 登录拦截功能


function yztoken(Com:React.FC) { //1.接收一个组件为参数

    //2.返回一个加强后的新组件
    return function token(props:any) {

        let history = useHistory()
        let location = useLocation()
        //初始周期和更新周期
        useEffect(()=>{
            //1.判断不是登录 去验证token
            if(location.pathname!=='/login'){
                //2.判断本地是否有token
                let token = localStorage.getItem('token')
                if(!token){
                    //跳转到登录页
                    history.push('/login')
                }
            }

        },[])
        return (
            <>
            <Com {...props}/>
            </>
        )
    }
}

export default yztoken

